// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'
import ListClass from '@api/base/model/DeviceQueryReq'
import BaseClass from '@api/base/model/DeviceDto'
import state from '@admin/views/System/IOT/IOTList/store/state'

// ============================== 导出状态集 ============================== //

export default {
  // —————————————————————————————— 常量状态 —————————————————————————————— //

  /**
   * 接口
   */
  API: {
    getList: state.API.getList,
    transList(arr, { state: { DICT } }) {
      arr.forEach((item) => {
        const property = item.property || []
        item.props = {}
        DICT.PROP_DICT.forEach(([code, , dict]) => {
          const matched = property.find(prop => prop.propertyCode === code) || {}
          matched.value = matched.propertyValue || ''
          matched.text = dict ? CORE.dict(dict, matched.value) : matched.value
          item.props[code] = matched
        })
      })
      return arr
    },
  },

  /**
   * 映射
   */
  MAP: {
    WORD: '直梯', // 词语

    /**
     * 自定义分页
     */
    MY_PAGE: {
      'pager-count': 9,
      'page-sizes': [10, 15, 20, 30, 40, 50, 100],
      layout: 'total, sizes, prev, pager, next, jumper',
    },
  },

  /**
   * 字典
   */
  DICT: {
    /**
     * 属性字典
     */
    PROP_DICT: [
      ['floor', '当前显示楼层'],
      ['runState', '行梯状态', [['0', '停止'], ['1', '上行'], ['2', '下行']]],
      ['level', '平层状态', [['0', '非平层'], ['1', '平层']]],
      ['door', '门开关状态', [['0', '开门'], ['1', '关门']]],
      ['speed', '当前速度'],
      ['faultName', '故障名称'],
    ],
  },

  /**
   * 初始参数
   *
   * 1. 初始存在，才能响应
   * 2. CORE.mixStore(store) 时使用
   * 3. setParam() 重置时使用
   * 4. WebSearch 高级查询点重置时使用
   */
  INIT_PARAM: CORE.initObj(ListClass, {
    pageSize: 15,
    deviceTypeId: '17', // 设备类型 ID, 17 直梯
    areaIdQueryType: 0, // 区域id查询类型，0默认查询本级及其下级设备，1-查询本级设备
  }),

  /**
   * 初始单项
   *
   * 1. 初始存在，才能响应
   * 2. CORE.mixStore(store) 时使用
   * 3. setOne() 重置时使用
   * 4. openAdd() 新增时使用
   */
  INIT_ONE: CORE.initObj(BaseClass, {
    //
  }),
}
